#pragma once 

#include "Conn.h"
#include <memory>
#include <sys/epoll.h>
using namespace std;

class SocketWorker {
public:
    void Init();        // 初始化
    void operator()();  // 线程函数

// --------------------- epoll ------------------ //
private:
    int epollfd; 
public:
    void AddEvent(int fd);
    void RemoveEvent(int fd);
    void ModifyEvent(int fd, bool epollOut); // epollOut: 是否监听写事件
private:
    void OnEvent(epoll_event ev);
    void OnAccept(shared_ptr<Conn> conn);
    void OnRW(shared_ptr<Conn> conn, bool r, bool w);
};